Interconnection networks connect individual devices into a community of communicating devices, and may be designed for use at different levels across various computer systems depending on the needs of the system. The communicating devices may include anything from a component or set of components within a computer to a single computer to a system of computers. Interconnection networks may include on-chip networks (OCNs) that interconnect microarchitecture within chips; System/storage area networks (SANs) that may be used to connect components within a processor or to connect processors and memory devices, and also for the connection of storage and Input/Output (I/O) components; Local Area Networks (LANs) for interconnecting autonomous computer systems distributed across a defined physical area, such as a machine room or a college campus; and Wide Area Networks (WANs), used to connect computer systems distributed across large distances, the internet being the most well-known WAN connecting many millions of computers over distances of thousands of miles. As interconnection networks become more prevalent, optimizing the performance of these networks becomes more and more critical.